// 2015年版权所有etcd作者
// 
// 根据Apache许可证2.0版（以下简称“许可证”）获得许可；
// 除非遵守许可证，否则不得使用此文件。
// 您可以通过
// 
// www.apache.org/licenses/LICENSE-2.0 
// 
// 除非适用法律要求或书面同意，否则根据许可证分发的软件
// 按“原样”分发，
// 无任何明示或暗示的保证或条件。
// 请参阅许可证，了解管理许可的特定语言和
// 许可证下的限制。

package backend

import (
	"syscall"

	bolt "go.etcd.io/bbolt"
)

// 系统调用。MAP_在linux 2.6上填充。23+执行顺序预读
// 这可以使用boltdb加快整个数据库的读取速度。我们希望
// 在存储
// 包中启用MAP_填充以更快地恢复键值存储。如果您的内核版本低于2.6。23 
// (https:
// 默认忽略此标志。请更新内核以防止出现这种情况。
var boltOpenOptions = &bolt.Options{
	MmapFlags:      syscall.MAP_POPULATE,
	NoFreelistSync: true,
}

func (bcfg *BackendConfig) mmapSize() int { return int(bcfg.MmapSize) }
